package com.hss.backservice;

import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.hss.backservice.service.JobHandleService;
import com.hss.backservice.service.LocalService;
import com.hss.backservice.service.MyJobService;
import com.hss.backservice.service.RemoteService;

public class MainActivity extends AppCompatActivity {
    ComponentName mServieComponent = null;
    JobScheduler  mJobScheduler = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent local = new Intent(MainActivity.this, LocalService.class);
        Intent remote = new Intent(MainActivity.this, RemoteService.class);
        startService(local);
        startService(remote);
        Intent job = new Intent(MainActivity.this, JobHandleService.class);

        startService(job);


//         mServieComponent=new ComponentName(this,MyJobService.class);
//        Intent startServiceIntent=new Intent(this,MyJobService.class);
//        startService(startServiceIntent);
//          mJobScheduler = (JobScheduler)
//                getSystemService( Context.JOB_SCHEDULER_SERVICE );
//        pollServer();
    }

    public void pollServer(){

        for(int i=0;i<10;i++){
            JobInfo jobInfo=new JobInfo.Builder(i,mServieComponent)
                    /*
                    * 这会使你的工作不启动直到规定的毫秒数已经过去了
                    * */
                    .setMinimumLatency(5000)
                    /*
                    * 这将设置你的工作期限。即使是无法满足其他要求，你的任务将约在规定的时间已经过去时开始执行
                    * */
                    .setOverrideDeadline(60000)
                    /*
                    * 只有在设备处于一种特定的网络中时，它才启动
                    * 默认值是JobInfo.NETWORK_TYPE_NONE :无论是否有网络连接，该任务均可以运行
                    * JobInfo.NETWORK_TYPE_ANY，这需要某种类型的网络连接可用，工作才可以运行
                    * JobInfo.NETWORK_TYPE_UNMETERED，这就要求设备在非蜂窝网络中
                    * */
                    .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
                    .build();
//            mWakeLockMsg.append("schedule job "+i+" !\n");
            mJobScheduler.schedule(jobInfo);

        }

    }

}
